Cloud9にminikubeを構築してみた
はじめに
こんにちは、アノテーションのなかたです。
今回は、Cloud9 に minikube環境をインストールし、起動してみました。
minikube とは
ローカル環境で簡単に Kubernetes 環境を用意できるツールです。
Minikube はローカル環境で Kubernetes を簡単に実行するためのツールです。Kubernetes を試したり日々の開発への使用を検討するユーザー向けに、PC上のVM内でシングルノードのKubernetes クラスターを実行することができます。
https://kubernetes.io/ja/docs/setup/learning-environment/minikube/
やってみる
minikube のドキュメントより手順を実施しています。
注意点: minikubeの実行には、マルチコアCPUが必要
はじめにt2.micro
で作成してみましたが、エラーが発生しました。
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 99.0M 100 99.0M 0 0 19.1M 0 0:00:05 0:00:05 --:--:-- 21.3M
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
$ minikube start
* minikube v1.34.0 on Amazon 2023.5.20241001 (xen/amd64)
* Automatically selected the docker driver. Other choices: ssh, none
X Exiting due to RSRC_INSUFFICIENT_CORES: has less than 2 CPUs available, but Kubernetes requires at least 2 to be available
minikube は実行する前提条件として、2つ以上のマルチコアCPUが求められるようです。
X Exiting due to RSRC_INSUFFICIENT_CORES: has less than 2 CPUs available, but Kubernetes requires at least 2 to be available
1. Cloud9の作成
上記より、インスタンスタイプはCPUコアが2つ使用可能なt3.medium
を選択します。
他のインスタンスタイプを使用したい場合は、CLIでインスタンスごとのコア数を確認できます。
AMI は Amazon Linux 2023
を選択し、Cloud9 を作成します。
2. minikubeのインストール
minikube をインストールします。
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 99.0M 100 99.0M 0 0 19.1M 0 0:00:05 0:00:05 --:--:-- 21.3M
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube環境をDocker上で起動します。
$ minikube start
* minikube v1.34.0 on Amazon 2023.5.20241001 (xen/amd64)
* Automatically selected the docker driver. Other choices: ssh, none
* Using Docker driver with root privileges
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.45 ...
* Downloading Kubernetes v1.31.0 preload ...
> preloaded-images-k8s-v18-v1...: 326.69 MiB / 326.69 MiB 100.00% 28.75 M
> gcr.io/k8s-minikube/kicbase...: 487.90 MiB / 487.90 MiB 100.00% 21.95 M
* Creating docker container (CPUs=2, Memory=2200MB) ...
X Docker is nearly out of disk space, which may cause deployments to fail! (89% of capacity). You can pass '--force' to skip this check.
* Suggestion:
Try one or more of the following to free up space on the device:
1. Run "docker system prune" to remove unused Docker data (optionally with "-a")
2. Increase the storage allocated to Docker for Desktop by clicking on:
Docker icon > Preferences > Resources > Disk Image Size
3. Run "minikube ssh -- docker system prune" if using the Docker container runtime
* Related issue: https://github.com/kubernetes/minikube/issues/9024
* Preparing Kubernetes v1.31.0 on Docker 27.2.0 ...
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
ポッドの取得を試してみます。
$ minikube kubectl -- get pods -A
> kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
> kubectl: 53.77 MiB / 53.77 MiB [-----------] 100.00% 73.87 MiB p/s 900ms
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6f6b679f8f-pvnzb 1/1 Running 0 53s
kube-system etcd-minikube 1/1 Running 0 59s
kube-system kube-apiserver-minikube 1/1 Running 0 58s
kube-system kube-controller-manager-minikube 1/1 Running 0 59s
kube-system kube-proxy-82lgr 1/1 Running 0 53s
kube-system kube-scheduler-minikube 1/1 Running 0 58s
kube-system storage-provisioner 1/1 Running 0 56s
参考
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。